home *** CD-ROM | disk | FTP | other *** search
- /*
- * screen(): surface shader for giving "wireframe" appearance. The method is
- * to render the surface opaque within a small distance of a grid in s,t
- * space. The grid is derived from a modulus function.
- */
- surface
- RCScreen(
- float Ks = .5,
- Kd = .5,
- Ka = .1,
- roughness = .1,
- density = .25,
- frequency = 20;
- color specularcolor = color (1,1,1) )
- {
- varying point Nf = faceforward( normalize(N), I );
- point V = normalize(-I);
-
- if( mod(s*frequency,1) < density || mod(t*frequency,1) < density)
- Oi = 1.0;
- else
- Oi = 0.0;
-
- Ci = Oi * ( Cs * ( Ka*ambient() + Kd*diffuse(Nf) ) +
- specularcolor*Ks*specular(Nf,V,roughness));
- }
-